/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package appalquilerinmuebles;

import java.util.ArrayList;

/**
 *
 * @author Edson
 *
 */
public class Usuario {
/*
 *Usuario
	login
	email
	nombre
	apaterno - amaterno
	password
	Contaco(n)
	Estado
	Tipo
 */
    private String login;
    private String email;
    private String nombre;
    private String apaterno;
    private String amaterno;
    private String password;
    private String Tipo;
    private boolean Estado;
    private ArrayList<Usuario> listaContactos;
    private ArrayList<Aviso> listaAvisos;
    private controlAviso ctrlAviso;
    //
    public Usuario(String login,String password, String email, String nombre, String tipo){
        this.login= login;        
        this.nombre = nombre;
        this.Tipo = tipo;
        this.Estado = true;
        this.email = email;
        this.apaterno= "";
        this.amaterno="";
        this.password = password;
        ctrlAviso = new controlAviso();
    }

    public String getPassword() {
        return password;
    }

    public String getTipo() {
        return Tipo;
    }

    public void setTipo(String Tipo) {
        this.Tipo = Tipo;
    }

    public String getAmaterno() {
        return amaterno;
    }

    public void setAmaterno(String amaterno) {
        this.amaterno = amaterno;
    }

    public String getApaterno() {
        return apaterno;
    }

    public void setApaterno(String apaterno) {
        this.apaterno = apaterno;
    }

    public String getEmail() {
        return email;
    }

    public boolean setEmail(String email) {
        if (validarEmail(email)){
            this.email = email;
            return true;
        }else{
            return false;
        }
    }

    public ArrayList<Usuario> getListaContactos() {
        return listaContactos;
    }

    public ArrayList<Aviso> getListaAvisos(){
        return ctrlAviso.getLstAvisos();
    }
    public void addAviso(Aviso aviso){
        ctrlAviso.RegistrarAviso(aviso);
    }
    public Aviso getAvisoPorCodigo(String codAviso){
        return ctrlAviso.BuscarAvisosporCodigoAviso(codAviso);
    }
    public void setListaContactos(ArrayList<Usuario> listaContactos) {
        this.listaContactos = listaContactos;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public boolean getEstado(){
        return Estado;
    }

    public void setEstado(boolean Estado){
        this.Estado = Estado;
    }
    //
    private boolean validarEmail(String email){
        if (email.isEmpty())
            return false;
        //
        if (!email.contains("@"))
            return false;
        //
        if (email.startsWith("@"))
            return false;
        //
        String[] partes = email.split("@");
            if (partes.length<2)
                return false;
            //
            if (partes[1].length()<1)
                return false;
            //
            partes = partes[0].split(".");
                if (partes.length<2)
                    return false;
                //
        //
        return true;
    }

    public void desactivarUsuario() {
        this.Estado = false;
        desactivarAvisos();
    }
    private void desactivarAvisos(){
        for(Aviso objAviso : ctrlAviso.getLstAvisos()){
            objAviso.setEstado(false);
        }
    }

}
